package cn.edu.wynu.complex;

public class Student {
    String name;
    Integer age;

    /**
     * 构造器注入会通过反射调用构造器，从而往容器中注入Bean对象
     * @param name 名字
     * @param age 年龄
     */
    public Student(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 属性注入方式需要先创建一个未初始化的对象
     * 因此必须有一个空参构造器
     */
    public Student() {
        System.out.println("构造器调用");
    }

    /**
     * 属性注入必须要有set方法，Spring通过反射调用该方法给Bean设置属性
     * @param name 姓名
     */
    public void setName(String name) {
        System.out.println("setName方法调用");
        this.name = name;
    }

    /**
     * 属性注入必须要有set方法，Spring通过反射调用该方法给Bean设置属性
     * @param age 年龄
     */
    public void setAge(Integer age) {
        this.age = age;
    }

    public void testInit() {
        System.out.println("初始化方法调用");
    }

    public void testDestroy() {
        System.out.println("销毁方法调用");
    }

    /**
     * 重写toString()方法方便打印信息
     * 快捷键alt + insert或者右键generate；选择toString方法
     * toString方法是所有类都有的，因为所有类都间接或直接的继承自Object类；
     * 该方法是Object类的方法
     * @return String
     */
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
